package controler.edition;

import java.util.List;

import javax.swing.DefaultListModel;

import model.dao.LieuDAO;
import model.dao.NewsDAO;
import model.dao.ParcoursDAO;
import model.dao.PoiDAO;
import controler.Lieu;
import controler.News;
import controler.Parcours;
import controler.Poi;

public class EditParcours {
	
	public void ajouterParcours(String libelle, String description, int idLieu) {
		Parcours parcours = new Parcours();
		parcours.setLibelle(libelle);
		parcours.setDescription(description);
		parcours.setLieu(new Lieu(idLieu));
		new ParcoursDAO(parcours).ajouter();
	}
	
	public DefaultListModel listerParcours() {
		List<Parcours> listParcours = ParcoursDAO.selectAll();
		DefaultListModel model = new DefaultListModel<>();
		for (Parcours parcours : listParcours) {
			String line = parcours.getId() + " | ";
			line += parcours.getLibelle() + " | ";
			line += parcours.getLieu().getLibelle();
			model.addElement(line);
		}
		return model;
	}

	public DefaultListModel listerPoi(int id) {
		ParcoursDAO parcoursDao = new ParcoursDAO(new Parcours(id));
		parcoursDao.selectItinineraire();
		List<Poi> listPoi = parcoursDao.getParcours().getListPoi();
		DefaultListModel model = new DefaultListModel<>();
		for (Poi poi : listPoi) {
			PoiDAO poiDao = new PoiDAO(poi);
			String line = poi.getId() + " | ";
			poiDao.selectOne();
			line += poiDao.getPoi().getLibelle();
			model.addElement(line);
		}
		return model;
	}
	
	public DefaultListModel searchKeyWord(String nom) {
		List<Parcours> listParcours = ParcoursDAO.rechercheParcoursMotCle(nom);
		DefaultListModel model = new DefaultListModel<>();
		for (Parcours parcours : listParcours) {
			String line = parcours.getId() + " | ";
			line += parcours.getLibelle() + " | ";
			line += parcours.getLieu().getLibelle();
			model.addElement(line);
		}
		return model;
	}
	
	public DefaultListModel searchExactWord(String nom) {
		List<Parcours> listParcours = ParcoursDAO.rechercheParcoursNomExact(nom);
		DefaultListModel model = new DefaultListModel<>();
		for (Parcours parcours : listParcours) {
			String line = parcours.getId() + " | ";
			line += parcours.getLibelle() + " | ";
			line += parcours.getLieu().getLibelle();
			model.addElement(line);
		}
		return model;
	}

	public void delete(int id) {
		ParcoursDAO dao = new ParcoursDAO(new Parcours(id));
		dao.supprimer();
	}
}
